Hint that a new Rust release may be available#4869
Conversation
0679b12 to
f9a9d91
Compare
This comment has been minimized.
This comment has been minimized.
f9a9d91 to
bebc2bf
Compare
b64ea36 to
33eae97
Compare
| if !utils::is_file(&self.path) { | ||
| return Ok(State::default()); | ||
| } | ||
| let content = utils::read_file("state", &self.path)?; |
There was a problem hiding this comment.
Note: Pre-existing and not directly related to this new feature, but we might need to introduce File::lock*() in this pattern, otherwise this file risks getting corrupted and if that happens, rustup will get crazy.
This doesn't happen yet because the update of settings.toml is not automatic.
There was a problem hiding this comment.
Should we create a new issue to track this?
There was a problem hiding this comment.
Should we create a new issue to track this?
@FranciscoTGouveia Certainly! :)
33eae97 to
58ad136
Compare
58ad136 to
b9afdd1
Compare
This comment has been minimized.
This comment has been minimized.
4400790 to
b4a55d1
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
b4a55d1 to
a3e9eb0
Compare
a3e9eb0 to
882b94a
Compare
| } | ||
|
|
||
| if should_notify { | ||
| let _ = cfg.notify_release(); |
There was a problem hiding this comment.
Nit: Sorry I have almost missed this, but can we at least have some error logging here? A simple if should_notify && let Err(e) = cfg.notify_release() { warn!(...) } would do 🙏
Closes #4846.
After a rustup command completes (excluding proxy commands), rustup checks whether a new Rust release is available.
To avoid introducing any additional overhead, this feature does not communicate with the release server.
Instead, it checks whether the stable toolchain manifest date is more than six weeks old.
Since Rust follows a regular and predictable release cadence, this should provide a sufficiently accurate indication that a new release is available.
When an outdated stable toolchain is detected, rustup prints a hint suggesting that the user may update their stable toolchain; this hint is shown at most once per day.
Users who prefer not to receive these hints can opt out by setting the
RUSTUP_NO_RELEASE_HINTenvironment variable.I have run some benchmarks (100 iterations) for the
rustup showcommand and observed no significant slowdown (1.1x) when we do not show the hint.However, due to manifest parsing, there is a 1.4x slowdown when the hint is shown (once per day).
Feedback is appreciated on: